Lịch sử Số thực dấu phẩy động

Năm 1938, nhà phát minh Konrad Zuse ở Berlin đã tạo ra "Z1", máy tính cơ lập trình được nhị phân đầu tiên. Máy tính này làm việc trên các số dấu phẩy động 22 bit gồm phần mũ 7 bit, phần định trị 15 bit (gồm cả bit không hiển thị tường minh và hiểu ngầm mà từ đây về sau ta gọi đó là bit ẩn), và 1 bit dấu. Máy tính Z3 được hoàn thành năm 1941, thực hiện được các phép toán số học dấu phẩy động kể cả trường hợp đặc biệt bao gồm kết quả vô cực dương, vô cực âm và không xác định.Ngay khi máy tính số điện tử trở thành hiện thực thì nhu cầu xử lý dữ liệu theo kiểu dấu phẩy động đã nhanh chóng phát sinh. Máy tính thương mại đầu tiên có khả năng làm điều này trong phần cứng là máy Z4 được sản xuất năm 1950, sau đó là máy tính IBM 704 trong năm 1954. Khoảng thời gian sau đó, phần cứng xử lý được dấu phẩy động là một đặc tính kỹ thuật tùy chọn và những máy tính nào mà có phần cứng này được gọi là "máy tính khoa học", hay được gọi là có khả năng "tính toán khoa học". Ngày nay thì tất cả máy tính đa dụng đều có khả năng đó. Máy tính hiệu PDP-11/44 mà là một phiên bản mở rộng của 11/34 có bộ nhớ cache và phần xử lý dấu phẩy động như là bộ phận chuẩn của nó.

Dòng máy tính UNIVAC 1100/2200 được giới thiệu năm 1962, cho phép làm việc với hai định dạng dấu phẩy động. Định dạng độ chính xác đơn dùng 36 bit, tổ chức thành 1 bit dấu, 8 bit phần mũ và 27 bit phần định trị. Định dạng độ chính xác kép dùng 72 bit tổ chức thành 1 bit dấu, 11 bit phần mũ và phần định trị 60 bit. Máy tính IBM 7094 được giới thiệu cùng năm, cũng cho phép làm việc với định dạng độ chính xác đơn và độ chính xác kép nhưng có cách tổ chức hơi khác.Trước khi có chuẩn IEEE 754, các máy tính dùng nhiều dạng dấu phẩy động khác nhau. Những định dạng này khác nhau về chiều dài bit, cách hiển thị và cách làm tròn ở các phép toán. Những khác biệt này dẫn đến những phần khác nhau về số học trong cả phần cứng lẫn phần mềm, và có độ chính xác khác nhau.Chuẩn IEEE-754 ra đời vào đầu thập niên 1980, dẫn đến việc dùng chiều dài 32 bit (hay 16 hay 64 bit) trở nên được thừa nhận. Một số đặc điểm của chuẩn này:

  • Đưa ra một cách cụ thể mã hóa các bit sao cho tất cả những máy tính tuân thủ với chuẩn này đều hiểu chuỗi bit như nhau. Điều này cho phép có thể truyền các số dấu phẩy động từ máy tính này đến máy tính khác.
  • Đưa ra một cách cụ thể cách ứng xử của các phép toán số học. Điều này có nghĩa là với một chương trình cho trước, với dữ liệu cho trước, luôn luôn phải tạo ra được cùng một kết quả trên bất kỳ máy tính nào tuân thủ với chuẩn này. Điều này làm giảm đi những đánh giá tai tiếng khó hiểu rằng tính toán trên dấu phẩy động sẽ cho ra những kết quả lung tung, khó xác định.
  • Các khả năng sinh ra các điều kiện đặc biệt (tràn, chia cho zero,v..v) được xác định trong suốt quá trình tính toán một cách rõ ràng và có thể kiểm soát được bằng phần mềm theo một cách chặt chẽ.